]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
popupMenu: Allow for an optional border for slider handle
authorFlorian Müllner <fmuellner@gnome.org>
Tue, 21 May 2013 17:04:03 +0000 (19:04 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Wed, 22 May 2013 16:46:34 +0000 (18:46 +0200)
While the default style works well will a solid handle, using both
border and fill color would be desirable in classic mode. Add the
necessary (optional) style properties to allow this.

https://bugzilla.gnome.org/show_bug.cgi?id=697917

js/ui/popupMenu.js

index eb683ffc42f74377a168673a74a10cf29e7d2bc6..fbe1e7e4115e27cb00fee2456d566ce21c77f19a 100644 (file)
@@ -551,6 +551,10 @@ const PopupSliderMenuItem = new Lang.Class({
 
         let handleRadius = themeNode.get_length('-slider-handle-radius');
 
+        let handleBorderWidth = themeNode.get_length('-slider-handle-border-width');
+        let [hasHandleColor, handleBorderColor] =
+            themeNode.lookup_color('-slider-handle-border-color', false);
+
         let sliderWidth = width - 2 * handleRadius;
         let sliderHeight = themeNode.get_length('-slider-height');
 
@@ -602,7 +606,16 @@ const PopupSliderMenuItem = new Lang.Class({
             color.blue / 255,
             color.alpha / 255);
         cr.arc(handleX, handleY, handleRadius, 0, 2 * Math.PI);
-        cr.fill();
+        cr.fillPreserve();
+        if (hasHandleColor && handleBorderWidth) {
+          cr.setSourceRGBA(
+              handleBorderColor.red / 255,
+              handleBorderColor.green / 255,
+              handleBorderColor.blue / 255,
+              handleBorderColor.alpha / 255);
+          cr.setLineWidth(handleBorderWidth);
+          cr.stroke();
+        }
         cr.$dispose();
     },